Future接口,常见的线程池中的FutureTask实现

FutureTask

1. Callable

Callable是一个函数式接口,声明了 call() 函数,和 run() 的区别就是会返回具体的结果,且可以抛出异常

1
2
3
4
5
6
7
@FunctionalInterface
public interface Callable<V> {
/**
* 计算结果并返回
*/
V call() throws Exception;
}

2. Future

Callable的返回值由Future接口获取。Future 是 Java 并发包 (java.util.concurrent) 中的一个接口,它代表一个异步任务的结果,允许你在任务执行完成后获取结果或取消任务。

1

3. FutureTask